package com.sunducation.co.cw;

/**
 * @description: 整数比较
 * @author:chenwenbiao
 * @createTime:2019/7/8 19:26
 * @Version：1.0
 **/
public class IntegerTest {

    /**
     * -128～127这256个值做了缓存，会直接从缓存返回对象回来，再进行地址比较就返回true
     * java在编译的时候 Integer a = 1; 被翻译成-> Integer a = Integer.valueOf(1);，所以a和b得到都是一个Cache对象，并且是同一个！
     **/
    public static void compare1(){
        Integer a = 1;
        Integer b = 1;

        System.out.println(a == b);
    }


    /**
     * 大于127后会新建一个整形对象，再进行地址比较就返回false
     **/
    public static void compare2(){
        Integer a = 128;
        Integer b = 128;

        System.out.println(a == b);
    }

    public static void main(String[] agrv){
        // 对象比较使用==是引用地址的比较
        compare1();
        compare2();

        //值比较需要使用equals方法来比较
    }

}
